Arch Linux Clean the System
In this article, we\'re going to learn how to
Clean package cache
Remove unused packages (orphans)
Clean the cache in our /home directory
Remove old config files
Remove duplicates, empty files, empty directories and broken symlinks
Find the largest files and directories
Clean Systemd journal
NOTE that we may need to backup our linux system before the cleaning work.
Clean package cache
Pacman stores all the downloaded packages in
/var/cache/pacman/pkg/
{.verbatim} and it does not remove the old or
uninstalled versions automatically.
We can use du
{.verbatim} to check the size of the package cache before
removing
❯ du -sh /var/cache/pacman/pkg
23G /var/cache/pacman/pkg
Remove cached packages that are not currently installed
sudo pacman -Sc
Remove all the packages from the cache, including the installed ones
sudo pacman -Scc
Remove unused packages (orphans)
Find the unused packages (orphans)
❯ sudo pacman -Qtdq
js78
Remove them
❯ sudo pacman -Rns $(pacman -Qtdq)
checking dependencies...
Packages (1) js78-78.15.0-4
Total Removed Size: 62.31 MiB
:: Do you want to remove these packages? [Y/n]
Clean the cache in /home
{.verbatim} directory
First we can check the size of the cache within /home
{.verbatim}
directory
❯ du -sh ~/.cache
1.2G /home/zjh/.cache
Then remove all the cache files
rm -rf ~/.cache/*
Remove old config files
Arch Linux stores the configuration files in ~/.config/
{.verbatim},
sometimes, may also put some old files in ~/.local/share/
{.verbatim}.
We can check the folders in there and remove the ones we don\'t need.
Remove duplicates, empty files, empty directories and broken symlinks
We can use rmlint
{.verbatim} to remove duplicates, empty files, empty
directories and broken symlinks
sudo pacman -S rmlint
Execute rmlint
{.verbatim} with specifying the directory we want to
check
❯ rmlint ~
...
==> Note: Please use the saved script below for removal, not the above output.
==> In total 30320 files, whereof 4185 are duplicates in 2629 groups.
==> This equals 0.63 GB of duplicates which could be removed.
==> 519 other suspicious item(s) found, which may vary in size.
==> Scanning took in total 3.391s.
Wrote a sh file to: /home/xxx/rmlint.sh
Wrote a json file to: /home/xxx/rmlint.json
After executing the command above, rmlint
{.verbatim} will generate
rmlint.sh
{.verbatim} and rmlint.json
{.verbatim}. We can open the
files to check which files, directories or broken symlinks will be
removed.
And then execute rmlint.sh
{.verbatim} to perform deletion.
sh -c rmlint.sh
Find the largest files and directories
We can use ncdu
{.verbatim} to find the largest files and directories
sudo pacman -S ncdu
Clean Systemd journal
Systemd storers logs in /var/log/journal/
{.verbatim}.
We can keep the latest logs by limiting the size
sudo journalctl --vacuum-size=500M # only keep 500mb of the latest logs
or by limiting the time
sudo journalctl --vacuum-time=4weeks
We can also let the system to automatically clean the logs by setting
SystemMaxUse
{.verbatim} in /etc/systemd/journald.conf
{.verbatim}
SystemMaxUse=500M
Ref
https://averagelinuxuser.com/clean-arch-linux/
https://linuxhint.com/removepackagedependenciespacmanarch_linux/